define([ "jquery", "baseService" ], function($, BaseService) { "use strict"; var loginFormModel = function loginFormModel() { var baseService = BaseService.getInstance(); var validateDeviceDeferred, validateDevice = function(deferred) { var options = { url: "mobileClient/validateDevice", success: function(data, status, jqXHR) { deferred.resolve(data, status, jqXHR); }, error: function(data, status, jqXHR) { deferred.reject(data, status, jqXHR); } }; baseService.update(options); }, registerDeviceDeferred, registerDevice = function(deferred, payload) { var options = { url: "mobileClient", data: payload, success: function(data, status, jqXHR) { deferred.resolve(data, status, jqXHR); } }; baseService.add(options); }, getNonceForceDeferred, getNonceForce = function(deferred) { var options = { url: "session/nonce", headers: { "x-noncecount": 10 }, complete: function(jqXHR) { if (jqXHR.status === 200) { deferred.resolve(jqXHR); } else { deferred.reject(jqXHR); } } }; baseService.add(options); }, meDeferred, me = function(deferred) { var options = { url: "me", success: function(data, status, jqXHR) { deferred.resolve(data, status, jqXHR); }, error: function(data, status, jqXHR) { deferred.reject(data, status, jqXHR); } }; baseService.fetch(options); }; return { validateDevice: function() { validateDeviceDeferred = $.Deferred(); validateDevice(validateDeviceDeferred); return validateDeviceDeferred; }, registerDevice: function(payload) { registerDeviceDeferred = $.Deferred(); registerDevice(registerDeviceDeferred, payload); return registerDeviceDeferred; }, getNonceForce: function() { getNonceForceDeferred = $.Deferred(); getNonceForce(getNonceForceDeferred); return getNonceForceDeferred; }, me: function() { meDeferred = $.Deferred(); me(meDeferred); return meDeferred; }, fetchAvailableLocale: function() { var options = { url: "enumerations/locale" }; return baseService.fetch(options); } }; }; return new loginFormModel(); });